package com.hsp.poly_.objpoly;

public class Finalize_ {
    public static void main(String[] args) {
        Car bmw = new Car("宝马1000");
        bmw = null;// 这是car对象就是一个垃圾，垃圾回收期就会回收销毁该对象
                    //在被销毁之前，会调用该对象的finalize方法
                    //程序员就可以在该方法中写自己的业务逻辑代码（比如释放资源：数据库的连接，或者打开文件）
                    //如果程序员不重写finalize，那么就会调用object类的方法，即默认处理
                    //如果重写了finalize方法，就可以实现自己的逻辑
//        System.out.println("程序退出了..."+bmw.finalize());
        System.gc();
        System.out.println("程序退出....");
    }
}

class Car{
    private String name;

    public Car(String name) {
        this.name = name;
    }
    //重写finalize方法
    @Override
    protected void finalize() throws Throwable {
        System.out.println("我们销毁 汽车"+this.name);
        System.out.println("释放类某些资源...");
    }
}